package com.huawei.model;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;

import com.huawei.bean.MUserInfoBean;
import com.huawei.bean.userInfoBean;
import com.huawei.db.DBProvider;
import com.huawei.utils.EasyFactory;
import com.huawei.utils.MyUtils;

public class UserInfoModel {

	/**
	 * 登录信息查询
	 * 
	 * @param muserInfoB 登录信息参数实体类
	 * @return 查询结果集
	 */
	public List<userInfoBean> queryLoginInfo(userInfoBean userInfoB) {
		// 拼写登录查询的sql语句
		String strSql = "select * from userinfo where user_name = ? and user_psw= ? ";
		// 执行查询，获取查询结果集（List+Bean）
		List<userInfoBean> lst = EasyFactory.getNewInstance(DBProvider.class).query(strSql,
				new BeanListHandler<userInfoBean>(userInfoBean.class), userInfoB.getUser_name(),
				userInfoB.getUser_id());
		// 返回查询结果集
		return lst;
	}

	
			
	
	/**
	 * 查询所有的用户信息
	 * 
	 * @return 查询结果集
	 */
	public List<userInfoBean> queryAllUserInfo() {
		// 拼写登录查询的sql语句
		String strSql = " select * from tuserinfo order by user_id desc ";
		// 执行查询，获取查询结果集（List+Bean）
		List<userInfoBean> lst = EasyFactory.getNewInstance(DBProvider.class).query(strSql,
				new BeanListHandler<userInfoBean>(userInfoBean.class));
		// 返回查询结果集
		return lst;
	}

	/**
	 * 根据过滤条件查询用户信息
	 * 
	 * @return 查询结果集
	 */
	public List<userInfoBean> queryUserInfoByParams(userInfoBean userInfoB) {
		// 拼写登录查询的sql语句
		StringBuilder sbSql = new StringBuilder(" select * from userinfo where user_phone ");
		// 使用list存储sql的？占位符的条件参数
		List<Object> lstParams = new ArrayList<>();

		if (userInfoB != null) {
			// 动态拼写Sql条件
			String strUserPhone = userInfoB.getUser_phone();
			if (strUserPhone != null && !strUserPhone.equals("")) {
				// 如果用户名不为空，则条件用户名查询过滤条件
				sbSql.append(" and user_phone like ? ");
				// 同时对应添加查询条件集合
				lstParams.add("%" + strUserPhone + "%");
			}

			
		}

		// 拼接排序条件
		sbSql.append(" order by user_id desc ");

		// 执行查询，获取查询结果集（List+Bean）
		List<userInfoBean> lst = EasyFactory.getNewInstance(DBProvider.class).query(sbSql.toString(),
				new BeanListHandler<userInfoBean>(userInfoBean.class), lstParams.toArray());

		// 返回查询结果集
		return lst;
	}

	/**
	 * 根据id查询用户信息
	 * 
	 * @param strUserId 主键id
	 * @return 查询结果实体类
	 */
	public userInfoBean queryUserInfoById(String strUserId) {
		// 拼写登录查询的sql语句
		String strSql = "select * from userinfo where user_id = ? ";
		// 执行查询，获取查询结果集（Bean）
		userInfoBean userInfoB = EasyFactory.getNewInstance(DBProvider.class).query(strSql,
				new BeanHandler<userInfoBean>(userInfoBean.class), strUserId);
		// 返回查询结果集
		return userInfoB;
	}
}
